package com.erp.erp_entitys.Inquiry;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;
import java.util.List;

/**
 * 询盘登记
 */
@ApiModel(value = "询盘登记实体类")
public class InquiryEntity {
    /**
     * 主键
     */
    @ApiModelProperty(value = "id")
    private Integer id;

    /**
     * 询价单号
     */
    @ApiModelProperty(value = "询价单号")
    private String oddNumber;

    /**
     * 询价日期
     */
    @ApiModelProperty(value = "询价日期")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date inquiryTime;

    /**
     * 反馈日期
     */
    @ApiModelProperty(value = "反馈日期")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date feedbackTime;

    /**
     * 操作员
     */
    @ApiModelProperty(value = "操作员")
    private String executor;

    /**
     * 币种
     */
    @ApiModelProperty(value = "币种")
    private String currency;

    /**
     * 制单公司
     */
    @ApiModelProperty(value = "制单公司")
    private String complaintUnit;

    /**
     * 询盘次数
     */
    @ApiModelProperty(value = "询盘次数")
    private Integer frequency;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 箱体状态
     * 1：草稿
     * 2：待批
     * 3：已批
     * 4：完成
     * 5：垃圾
     */
    @ApiModelProperty(value = "箱体状态")
    private String boxStatus;

    /**
     * 询问方
     */
    @ApiModelProperty(value = "询问方")
    private String inquirer;
    /**
     * 邮箱地址
     */
    @ApiModelProperty(value = "邮箱地址")
    private String email;
    /**
     * 联系方式
     */
    @ApiModelProperty(value = "联系方式")
    private String contactDetails;
    /**
     * 其他联系方式
     */
    @ApiModelProperty(value = "其他联系方式")
    private String otherContactDetails;

    /**
     * 客户简称
     */
    private String customerSimpleName;
    /**
     * 客户-业务员
     */
    private String customerSalesman;
    /**
     * 业务员名称
     */
    private String salesmanName;
    /**
     * 客户联系人
     */
    private String customerContactName;
    /**
     * 客户来源
     */
    private String customerSource;
    /**
     * 客户编码
     */
    private String customerCode;
    /**
     * 客户类型
     */
    private String customerType;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 国家/地区编码
     */
    private String countryRegion;
    /**
     * 国家/地区名称
     */
    private String countryRegionName;

    /**
     * 询盘平台名称
     */
    private String inquiryPlatformName;

    /**
     * 询盘平台编码
     */
    private String inquiryPlatformCode;

    /******** 关联数据 ********/
    @ApiModelProperty(value = "产品列表")
    private List<InquiryProductEntity> productList;
    @ApiModelProperty(value = "附件列表")
    private List<InquiryFileEntity> fileList;
    @ApiModelProperty(value = "历史记录列表")
    private List<InquiryRecordEntity> recordList;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getOddNumber() {
        return oddNumber;
    }

    public void setOddNumber(String oddNumber) {
        this.oddNumber = oddNumber == null ? null : oddNumber.trim();
    }

    public Date getInquiryTime() {
        return inquiryTime;
    }

    public void setInquiryTime(Date inquiryTime) {
        this.inquiryTime = inquiryTime;
    }

    public Date getFeedbackTime() {
        return feedbackTime;
    }

    public void setFeedbackTime(Date feedbackTime) {
        this.feedbackTime = feedbackTime;
    }

    public String getExecutor() {
        return executor;
    }

    public void setExecutor(String executor) {
        this.executor = executor == null ? null : executor.trim();
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency == null ? null : currency.trim();
    }

    public Integer getFrequency() {
        return frequency;
    }

    public String getComplaintUnit() {
        return complaintUnit;
    }

    public void setComplaintUnit(String complaintUnit) {
        this.complaintUnit = complaintUnit;
    }

    public void setFrequency(Integer frequency) {
        this.frequency = frequency;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getBoxStatus() {
        return boxStatus;
    }

    public void setBoxStatus(String boxStatus) {
        this.boxStatus = boxStatus;
    }

    public List<InquiryProductEntity> getProductList() {
        return productList;
    }

    public void setProductList(List<InquiryProductEntity> productList) {
        this.productList = productList;
    }

    public List<InquiryFileEntity> getFileList() {
        return fileList;
    }

    public void setFileList(List<InquiryFileEntity> fileList) {
        this.fileList = fileList;
    }

    public List<InquiryRecordEntity> getRecordList() {
        return recordList;
    }

    public void setRecordList(List<InquiryRecordEntity> recordList) {
        this.recordList = recordList;
    }

    public String getInquirer() {
        return inquirer;
    }

    public void setInquirer(String inquirer) {
        this.inquirer = inquirer;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getContactDetails() {
        return contactDetails;
    }

    public void setContactDetails(String contactDetails) {
        this.contactDetails = contactDetails;
    }

    public String getOtherContactDetails() {
        return otherContactDetails;
    }

    public void setOtherContactDetails(String otherContactDetails) {
        this.otherContactDetails = otherContactDetails;
    }

    public String getCustomerSimpleName() {
        return customerSimpleName;
    }

    public void setCustomerSimpleName(String customerSimpleName) {
        this.customerSimpleName = customerSimpleName;
    }

    public String getCustomerSalesman() {
        return customerSalesman;
    }

    public void setCustomerSalesman(String customerSalesman) {
        this.customerSalesman = customerSalesman;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getCustomerType() {
        return customerType;
    }

    public void setCustomerType(String customerType) {
        this.customerType = customerType;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCountryRegion() {
        return countryRegion;
    }

    public void setCountryRegion(String countryRegion) {
        this.countryRegion = countryRegion;
    }

    public String getCountryRegionName() {
        return countryRegionName;
    }

    public void setCountryRegionName(String countryRegionName) {
        this.countryRegionName = countryRegionName;
    }

    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public String getCustomerContactName() {
        return customerContactName;
    }

    public void setCustomerContactName(String customerContactName) {
        this.customerContactName = customerContactName;
    }

    public String getCustomerSource() {
        return customerSource;
    }

    public void setCustomerSource(String customerSource) {
        this.customerSource = customerSource;
    }

    public String getInquiryPlatformName() {
        return inquiryPlatformName;
    }

    public void setInquiryPlatformName(String inquiryPlatformName) {
        this.inquiryPlatformName = inquiryPlatformName;
    }

    public String getInquiryPlatformCode() {
        return inquiryPlatformCode;
    }

    public void setInquiryPlatformCode(String inquiryPlatformCode) {
        this.inquiryPlatformCode = inquiryPlatformCode;
    }


    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("InquiryEntity").append('[')
                .append("id=")
                .append(id)
                .append(",oddNumber=")
                .append(oddNumber)
                .append(",inquiryTime=")
                .append(inquiryTime)
                .append(",feedbackTime=")
                .append(feedbackTime)
                .append(",executor=")
                .append(executor)
                .append(",currency=")
                .append(currency)
                .append(",complaintUnit=")
                .append(complaintUnit)
                .append(",frequency=")
                .append(frequency)
                .append(",createTime=")
                .append(createTime)
                .append(",boxStatus=")
                .append(boxStatus)
                .append(",inquirer=")
                .append(inquirer)
                .append(",email=")
                .append(email)
                .append(",contactDetails=")
                .append(contactDetails)
                .append(",otherContactDetails=")
                .append(otherContactDetails)
                .append(",customerSimpleName=")
                .append(customerSimpleName)
                .append(",customerSalesman=")
                .append(customerSalesman)
                .append(",salesmanName=")
                .append(salesmanName)
                .append(",customerContactName=")
                .append(customerContactName)
                .append(",customerSource=")
                .append(customerSource)
                .append(",customerCode=")
                .append(customerCode)
                .append(",customerType=")
                .append(customerType)
                .append(",customerName=")
                .append(customerName)
                .append(",countryRegion=")
                .append(countryRegion)
                .append(",countryRegionName=")
                .append(countryRegionName)
                .append(",inquiryPlatformName=")
                .append(inquiryPlatformName)
                .append(",inquiryPlatformCode=")
                .append(inquiryPlatformCode)
                .append(",productList=")
                .append(productList)
                .append(",fileList=")
                .append(fileList)
                .append(",recordList=")
                .append(recordList)
                .append(']');
        return sb.toString();
    }
}